<?php

function app()
{
    return Yii::$app;
}

function request()
{
    return app()->getRequest();
}

function getQueryParams()
{
    return request()->getQueryParams();
}

function getBodyParams()
{
    try {
        return request()->getBodyParams();
    } catch (\yii\base\InvalidConfigException $e) {
    }
}

function getParams()
{
    return \yii\helpers\ArrayHelper::merge(getQueryParams(), getBodyParams());
}

function getRawBody()
{
    return request()->getRawBody();
}

function response()
{
    return app()->getResponse();
}

function user()
{
    return app()->getUser();
}

function isGuest()
{
    return user()->getIsGuest();
}

function get($name = null, $defaultValue = null)
{
    return request()->get($name, $defaultValue);
}

function post($name = null, $defaultValue = null)
{
    return request()->post($name, $defaultValue);
}

function can($permissionName, $params = [], $allowCaching = true)
{
    return user()->can($permissionName, $params, $allowCaching);
}

function ajaxRequest()
{
    return request()->getIsAjax();
}

function postRequest()
{
    return request()->getIsPost();
}

function d($var)
{
    echo '<pre>';
    print_r($var);
}

function dump($var)
{
    echo '<pre>';
    print_r($var);
    die;
}

if (!function_exists('pp')) {
    /**
     * Notes:传递数据以易于阅读的样式格式化后输出
     * Date: 2020/7/14
     * Time: 19:06
     * @param $data
     * @param bool $isstyle
     * @param bool $isdie
     */
    function pp($data, $isstyle = false, $isdie = false)
    {
        if ($isstyle) {
            // 定义样式
            $str = '<pre style="display: block;padding: 9.5px;margin: 44px 0 0 0;font-size: 13px;line-height: 1.42857;color: #333;word-break: break-all;word-wrap: break-word;background-color: #F5F5F5;border: 1px solid #CCC;border-radius: 4px;">';
        } else {
            $str = '<pre>';
        }
        // 如果是boolean或者null直接显示文字；否则print
        if (is_bool($data)) {
            $show_data = $data ? 'true' : 'false';
        } else {
            if (is_null($data)) {
                $show_data = 'null';
            } else {
                $show_data = print_r($data, true);
            }
        }
        $str .= $show_data;
        $str .= '</pre>';
        $str .= <<<php


php;
        echo $str;
        $isdie && die;
    }

}

if (!function_exists('t')) {
    /**
     * Notes:语言包转换
     * Date: 2020/7/27
     * Time: 10:56
     * @param $category
     * @param $message
     * @param array $params
     * @param null $language
     * @return string
     */
    function t($category, $message, $params = [], $language = null)
    {
        return Yii::t($category, $message, $params, $language);
    }
}